DIM NBuf&(20),BufLen&(20),St&(20),E&(20),Pi&(20),Reps&(20),Start&(20),EndPos&(20),Res&(20),p(255),Per&(20),Grf%,Vol&(20),Ins$(20),Gr(5),Octs%(10),Key$(24),Keyf(24),Keyb$(24),Fred(7),Fgre(7),Fblu(7),Blit1%(66),Nam$(255),Sta$(255)
FOR A%=1 TO 20:Grf%=0:Reps&(A%)=1:BufLen&(A%)=0:Vol&(A%)=64:NEXT
Per%=X3&:Volu%=X4&:IF X2&>65534 THEN X5&=X1&+131068:X6&=X2&-65534:X2&=65534
IF (X2&+X6&)>131068 THEN LOCATE 2,1 :PRINT "Sorry, too large.":EXIT SUB
Ad&=Ad&+16:Dma2%=Dma2%+1:Dma%=2^Dma2%:IF Ad&>14676176 THEN Ad&=Con&+10:Dma%=1:Dma2%=0
IF X5&>X1& THEN POKEW Con&,Dma%:FOR T%=1 TO 500:NEXT:POKEL Ad&+2,X2&:POKEL Ad&,X1&:POKEW Ad&+6,Per%:POKEW Ad&+8,Volu%:POKEW Con&,&H8200+Dma%:FOR T%=1 TO 500:NEXT:POKEL Ad&+2,X6&:POKEL Ad&,X5&:EXIT SUB
POKEW Con&,Dma%:FOR T%=1 TO 500:NEXT:POKEL Ad&+2,X2&:POKEL Ad&,X1&:POKEW Ad&+6,Per%:POKEW Ad&+8,Volu%
Dmc%=&H8200+Dma%:POKEW Con&,Dmc%:FOR T%=1 TO 500:NEXT
Piggy: X%=MOUSE(1):Y1%=MOUSE(2):IF MOUSE(0)=0 THEN Piggy
IF X%>367 AND X%<386 AND Y1%>95 AND Y1%<107 THEN AllSet
IF X%>0 AND X%<365 AND Y1%>95 AND Y1%<107 THEN AllSet2
IF X%<385 AND Y1%<96 THEN GetBog
IF Y1%=(Y%+8) THEN Piggy
IF X%>385 AND X%<401 AND Y1%>7 AND Y1%<(95-Siz%) THEN LINE(386,Y%+8)-(400,Y%+8+Siz%),4,bf:Y%=Y1%-8:LINE(386,Y%+8)-(400,Y%+8+Siz%),1,bf:Top%=Y%*Fra:GOSUB PrLoo
IF X%>385 AND X%<404 AND Y1%<8 AND Top%>0 THEN Top%=Top%-1:GOSUB PrLoo
IF X%>385 AND X%<404 AND Y1%>95 AND Y1%<107 AND Top%<DosCount% THEN Top%=Top%+1:GOSUB PrLoo
GOTO Piggy
GetBog:
IF Y2%=Y1% THEN Piggy
FOR T%=0 TO 88 STEP 8 :IF Y1%>T% AND Y1%<(T%+8) THEN Fil%=Top%+(T%/8):COLOR 1:LINE(48,95)-(360,106),0,bf:LOCATE 13,7:PRINT Nam$(Fil%):COLOR 7
NEXT :Y2%=Y1%:GOTO Piggy
AllSet2: IF Y1%=Y2% THEN Piggy
Y2%=Y1%:COLOR 1:LINE(48,95)-(360,106),0,bf:LOCATE 13,6:INPUT " ",SV$ :IF SV$="" THEN COLOR 7:GOTO Piggy
Anus%=1:GOTO Piggy
AllSet: IF Y1%=Y2% THEN GOTO Piggy
IF ReRoo%=1 THEN ReRoo%=0:Y2%=Y1%:GOTO Piggy
Y2%=Y1%:IF Anus%=1 THEN Fil%=255:Nam$(Fil%)=SV$:Sta$(Fil%)="F"
IF Fil%=0 THEN LINE(0,42)-(402,42),1:LINE(0,43)-(401,106),0,bf:CALL Refart:COLOR 1,2:RETURN
IF Sta$(Fil%)="P" THEN Fil%=0:GOTO AllSet
IF Sta$(Fil%)="D" THEN B$=RIGHT$(Nam$(Fil%),LEN(Nam$(Fil%))-2):CHDIR T$:T$=LEFT$(B$,LEN(B$)-1):ReRoo%=1:GOTO more3